package com.newtouch.bxzs.business.train.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.newtouch.bxzs.business.train.model.bo.CourseBO;
import com.newtouch.bxzs.business.train.model.vo.CourseDetailVO;
import com.newtouch.bxzs.business.train.model.vo.CourseVO;

import java.util.List;

/**
 * 课程管理service类
 *
 * <p>
 * <b>History:</b>
 * <table border="1">
 * <tr>
 * <th>Date</th>
 * <th>Operator</th>
 * <th>Memo</th>
 * </tr>
 * <tr>
 * <td>2021/2/22 10:08</td>
 * <td>dingqianbin</td>
 * <td>Create</td>
 * </tr>
 * </table>
 *
 * @author dingqianbin
 * @version 1.0.0
 * @since 1.0.0
 */
public interface CourseService {

    /**
     * 获取课程列表信息
     *
     * @param courseVO 课程查询VO
     * @return 课程返回BO分页数据
     */
    IPage<CourseBO> getCourseList(CourseVO courseVO);

    /**
     * 获取课程详细信息
     *
     * @param courseId 课程ID
     * @return 课程详细信息
     */
    CourseBO getCourseDetail(String courseId);

    /**
     * 增加/修改课程信息
     *
     * @param courseDetailVO 课程信息新增/修改VO
     * @return 主键课程ID
     */
    String modifyCourse(CourseDetailVO courseDetailVO);

    /**
     * 发布/撤销课程
     *
     * @param courseId 课程ID
     * @param publishStatus 发布状态
     * @return Integer
     */
    Integer changeCourse(String courseId, String publishStatus);

    /**
     * 删除/批量删除课程
     *
     * @param CourseDetailVOList 课程信息集合
     * @return Integer
     */
    Integer deleteCourse(List<CourseDetailVO> CourseDetailVOList);
}
